package com.zhz.model.employee;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zhz.common.tool.mybatisplus.base.dal.entity.BasePO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.time.LocalDate;

/**
 * 企业信息详情
 *
 * @author zhouhengzhe
 * @date 2023/3/21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@TableName("em_user_company_personal")
public class UserCompanyPersonal extends BasePO {

    @ApiModelProperty("用户ID")
    @TableField(USER_ID)
    private String userId;

    @ApiModelProperty("用户名称")
    @TableField(USERNAME)
    private String username;

    @ApiModelProperty("手机号码")
    @TableField(MOBILE)
    private String mobile;

    @ApiModelProperty("入职时间")
    @TableField(TIME_OF_ENTRY)
    private LocalDate timeOfEntry;

    @ApiModelProperty("部门名称")
    @TableField(DEPARTMENT_NAME)
    private String departmentName;

    @ApiModelProperty("公司ID")
    @TableField(COMPANY_ID)
    private String companyId;

    @ApiModelProperty("性别")
    @TableField(SEX)
    private String sex;

    @ApiModelProperty("出生日期")
    @TableField(DATE_OF_BIRTH)
    private LocalDate dateOfBirth;

    @ApiModelProperty("最高学历")
    @TableField(THE_HIGHEST_DEGREE_OF_EDUCATION)
    private String theHighestDegreeOfEducation;

    @ApiModelProperty("国家地区")
    @TableField(NATIONAL_AREA)
    private String nationalArea;

    @ApiModelProperty("护照号")
    @TableField(PASSPORT_NO)
    private String passportNo;

    @ApiModelProperty("身份证号")
    @TableField(ID_NUMBER)
    private String idNumber;

    @ApiModelProperty("身份证照片-正面")
    @TableField(ID_CARD_PHOTO_POSITIVE)
    private String idCardPhotoPositive;

    @ApiModelProperty("身份证照片-背面")
    @TableField(ID_CARD_PHOTO_BACK)
    private String idCardPhotoBack;

    @ApiModelProperty("籍贯")
    @TableField(NATIVE_PLACE)
    private String nativePlace;

    @ApiModelProperty("民族")
    @TableField(NATION)
    private String nation;

    @ApiModelProperty("英文名")
    @TableField(ENGLISH_NAME)
    private String englishName;

    @ApiModelProperty("婚姻状况")
    @TableField(MARITAL_STATUS)
    private String maritalStatus;

    @ApiModelProperty("员工照片")
    @TableField(STAFF_PHOTO)
    private String staffPhoto;

    @ApiModelProperty("生日")
    @TableField(BIRTHDAY)
    private String birthday;

    @ApiModelProperty("属相")
    @TableField(ZODIAC)
    private String zodiac;

    @ApiModelProperty("年龄")
    @TableField(AGE)
    private String age;

    @ApiModelProperty("星座")
    @TableField(CONSTELLATION)
    private String constellation;

    @ApiModelProperty("血型")
    @TableField(BLOOD_TYPE)
    private String bloodType;

    @ApiModelProperty("户籍所在地")
    @TableField(DOMICILE)
    private String domicile;

    @ApiModelProperty("政治面貌")
    @TableField(POLITICAL_OUTLOOK)
    private String politicalOutlook;

    @ApiModelProperty("入党时间")
    @TableField(TIME_TO_JOIN_THE_PARTY)
    private String timeToJoinTheParty;

    @ApiModelProperty("存档机构")
    @TableField(ARCHIVING_ORGANIZATION)
    private String archivingOrganization;

    @ApiModelProperty("子女状态")
    @TableField(STATE_OF_CHILDREN)
    private String stateOfChildren;

    @ApiModelProperty("子女有无商业保险")
    @TableField(DO_CHILDREN_HAVE_COMMERCIAL_INSURANCE)
    private String doChildrenHaveCommercialInsurance;

    @ApiModelProperty("有无违法违纪行为")
    @TableField(IS_THERE_ANY_VIOLATION_OF_LAW_OR_DISCIPLINE)
    private String isThereAnyViolationOfLawOrDiscipline;

    @ApiModelProperty("有无重大病史")
    @TableField(ARE_THERE_ANY_MAJOR_MEDICAL_HISTORIES)
    private String areThereAnyMajorMedicalHistories;

    @ApiModelProperty("QQ")
    @TableField(QQ)
    private String qq;

    @ApiModelProperty("微信")
    @TableField(WECHAT)
    private String wechat;

    @ApiModelProperty("居住证城市")
    @TableField(RESIDENCE_CARD_CITY)
    private String residenceCardCity;

    @ApiModelProperty("居住证办理日期")
    @TableField(DATE_OF_RESIDENCE_PERMIT)
    private String dateOfResidencePermit;

    @ApiModelProperty("居住证截止日期")
    @TableField(RESIDENCE_PERMIT_DEADLINE)
    private String residencePermitDeadline;

    @ApiModelProperty("现居住地")
    @TableField(PLACE_OF_RESIDENCE)
    private String placeOfResidence;

    @ApiModelProperty("通讯地址")
    @TableField(POSTAL_ADDRESS)
    private String postalAddress;

    @ApiModelProperty("联系手机")
    @TableField(CONTACT_THE_MOBILE_PHONE)
    private String contactTheMobilePhone;

    @ApiModelProperty("个人邮箱")
    @TableField(PERSONAL_MAILBOX)
    private String personalMailbox;

    @ApiModelProperty("紧急联系人")
    @TableField(EMERGENCY_CONTACT)
    private String emergencyContact;

    @ApiModelProperty("紧急联系电话")
    @TableField(EMERGENCY_CONTACT_NUMBER)
    private String emergencyContactNumber;

    @ApiModelProperty("社保电脑号")
    @TableField(SOCIAL_SECURITY_COMPUTER_NUMBER)
    private String socialSecurityComputerNumber;

    @ApiModelProperty("公积金账号")
    @TableField(PROVIDENT_FUND_ACCOUNT)
    private String providentFundAccount;

    @ApiModelProperty("银行卡号")
    @TableField(BANK_CARD_NUMBER)
    private String bankCardNumber;

    @ApiModelProperty("开户行")
    @TableField(OPENING_BANK)
    private String openingBank;

    @ApiModelProperty("学历类型")
    @TableField(EDUCATIONAL_TYPE)
    private String educationalType;

    @ApiModelProperty("毕业学校")
    @TableField(GRADUATE_SCHOOL)
    private String graduateSchool;

    @ApiModelProperty("入学时间")
    @TableField(ENROLMENT_TIME)
    private String enrolmentTime;

    @ApiModelProperty("毕业时间")
    @TableField(GRADUATION_TIME)
    private String graduationTime;

    @ApiModelProperty("专业")
    @TableField(MAJOR)
    private String major;

    @ApiModelProperty("毕业证书")
    @TableField(GRADUATION_CERTIFICATE)
    private String graduationCertificate;

    @ApiModelProperty("学位证书")
    @TableField(CERTIFICATE_OF_ACADEMIC_DEGREE)
    private String certificateOfAcademicDegree;

    @ApiModelProperty("上家公司")
    @TableField(HOME_COMPANY)
    private String homeCompany;

    @ApiModelProperty("职称")
    @TableField(TITLE)
    private String title;

    @ApiModelProperty("简历")
    @TableField(RESUME)
    private String resume;

    @ApiModelProperty("有无竞业限制")
    @TableField(IS_THERE_ANY_COMPETITION_RESTRICTION)
    private String isThereAnyCompetitionRestriction;

    @ApiModelProperty("前公司离职证明")
    @TableField(PROOF_OF_DEPARTURE_OF_FORMER_COMPANY)
    private String proofOfDepartureOfFormerCompany;

    @ApiModelProperty("备注")
    @TableField(REMARKS)
    private String remarks;

    public static final String USER_ID = "user_id";

    public static final String USERNAME = "username";

    public static final String MOBILE = "mobile";

    public static final String TIME_OF_ENTRY = "time_of_entry";

    public static final String DEPARTMENT_NAME = "department_name";

    public static final String COMPANY_ID = "company_id";

    public static final String SEX = "sex";

    public static final String DATE_OF_BIRTH = "date_of_birth";

    public static final String THE_HIGHEST_DEGREE_OF_EDUCATION = "the_highest_degree_of_education";

    public static final String NATIONAL_AREA = "national_area";

    public static final String PASSPORT_NO = "passport_no";

    public static final String ID_NUMBER = "id_number";

    public static final String ID_CARD_PHOTO_POSITIVE = "id_card_photo_positive";

    public static final String ID_CARD_PHOTO_BACK = "id_card_photo_back";

    public static final String NATIVE_PLACE = "native_place";

    public static final String NATION = "nation";

    public static final String ENGLISH_NAME = "english_name";

    public static final String MARITAL_STATUS = "marital_status";

    public static final String STAFF_PHOTO = "staff_photo";

    public static final String BIRTHDAY = "birthday";

    public static final String ZODIAC = "zodiac";

    public static final String AGE = "age";

    public static final String CONSTELLATION = "constellation";

    public static final String BLOOD_TYPE = "blood_type";

    public static final String DOMICILE = "domicile";

    public static final String POLITICAL_OUTLOOK = "political_outlook";

    public static final String TIME_TO_JOIN_THE_PARTY = "time_to_join_the_party";

    public static final String ARCHIVING_ORGANIZATION = "archiving_organization";

    public static final String STATE_OF_CHILDREN = "state_of_children";

    public static final String DO_CHILDREN_HAVE_COMMERCIAL_INSURANCE = "do_children_have_commercial_insurance";

    public static final String IS_THERE_ANY_VIOLATION_OF_LAW_OR_DISCIPLINE = "is_there_any_violation_of_law_or_discipline";

    public static final String ARE_THERE_ANY_MAJOR_MEDICAL_HISTORIES = "are_there_any_major_medical_histories";

    public static final String QQ = "qq";

    public static final String WECHAT = "wechat";

    public static final String RESIDENCE_CARD_CITY = "residence_card_city";

    public static final String DATE_OF_RESIDENCE_PERMIT = "date_of_residence_permit";

    public static final String RESIDENCE_PERMIT_DEADLINE = "residence_permit_deadline";

    public static final String PLACE_OF_RESIDENCE = "place_of_residence";

    public static final String POSTAL_ADDRESS = "postal_address";

    public static final String CONTACT_THE_MOBILE_PHONE = "contact_the_mobile_phone";

    public static final String PERSONAL_MAILBOX = "personal_mailbox";

    public static final String EMERGENCY_CONTACT = "emergency_contact";

    public static final String EMERGENCY_CONTACT_NUMBER = "emergency_contact_number";

    public static final String SOCIAL_SECURITY_COMPUTER_NUMBER = "social_security_computer_number";

    public static final String PROVIDENT_FUND_ACCOUNT = "provident_fund_account";

    public static final String BANK_CARD_NUMBER = "bank_card_number";

    public static final String OPENING_BANK = "opening_bank";

    public static final String EDUCATIONAL_TYPE = "educational_type";

    public static final String GRADUATE_SCHOOL = "graduate_school";

    public static final String ENROLMENT_TIME = "enrolment_time";

    public static final String GRADUATION_TIME = "graduation_time";

    public static final String MAJOR = "major";

    public static final String GRADUATION_CERTIFICATE = "graduation_certificate";

    public static final String CERTIFICATE_OF_ACADEMIC_DEGREE = "certificate_of_academic_degree";

    public static final String HOME_COMPANY = "home_company";

    public static final String TITLE = "title";

    public static final String RESUME = "resume";

    public static final String IS_THERE_ANY_COMPETITION_RESTRICTION = "is_there_any_competition_restriction";

    public static final String PROOF_OF_DEPARTURE_OF_FORMER_COMPANY = "proof_of_departure_of_former_company";

    public static final String REMARKS = "remarks";
}